const { dir } = require('console');
const fs = require('fs')
const fspromise = require('fs').promises
// 创建文件夹
fs.mkdir('logs', (err) => {
    if (err) throw err
    console.log('创建成功');
})

// 修改文件夹名字
fs.rename('./logs', 'newlog', () => {
    console.log('修改成功');
})

// 删除文件夹
fs.rmdir('./logs', () => {
    console.log('删除文件夹');
})

// 读取文件夹
fs.readdir('logs', () => {
    console.log('读取');
})


// 创建文件并写入内容
fs.writeFile('./log.txt', 'hello', (err, data) => {
    if (err) {

    } else {
        console.log('文件创建成功');
    }
})

// 修改文件
fs.appendFile('./logtxt', '!!!', (err) => {

})

// 删除文件
fs.unlink('./log.txt', (err) => {

})

//查询文件
fs.readFile('./logtxt', 'utf-8', (err, content) => {
    console.log(content);   //加了utf-8用这个
    console.log(content.toString());
})

// 同步操作 / 不用同步的话就后执行
const content = fs.readFileSync('./logtxt');

// promises
(async () => {
    let result = await fspromise.readFile('./log.txt')
    console.log(result);
})()

// 目录遍历
function readDir(dir) {
    fs.readdir(dir, (err, content) => {
        content.forEach(r => {
            let joinDir = `${dir}/${r}`
            fs.stat(joinDir, (err, stats) => {
                if (stats.isDirectory()) {
                    readDir(joinDir)
                } else {
                    fs.readFile(joinDir, (err, content) => {
                        console.log(content);
                    })
                }
            })
        })
    })
}
readDir('./')

// 当文件被修改会被监测到
fs.watch('log.txt', (err) => {
    console.log('文件改变了');
})
